package com.muyu.system.service;

import java.util.List;

import com.muyu.common.core.domain.Result;
import com.muyu.system.domain.DanmoShoppingOrderDetails;
import com.muyu.system.domain.DanmoShoppingProducts;
import com.muyu.system.req.DanmoShoppingCartOrdersDto;
import com.muyu.system.req.DanmoShoppingOrdersReq;
import com.muyu.system.req.ShoppingCartDto;

/**
 * 订单详情Service接口
 * 
 * @author yangle
 * @date 2024-09-29
 */
public interface IDanmoShoppingOrderDetailsService 
{
    /**
     * 查询订单详情
     * 
     * @param id 订单详情主键
     * @return 订单详情
     */
    public DanmoShoppingOrdersReq selectDanmoShoppingOrderDetailsById(Long id);

    /**
     * 查询订单详情列表
     * 
     * @param danmoShoppingOrderDetails 订单详情
     * @return 订单详情集合
     */
    public List<DanmoShoppingOrderDetails> selectDanmoShoppingOrderDetailsList(DanmoShoppingOrderDetails danmoShoppingOrderDetails);

    /**
     * 新增订单详情
     * 
     * @param danmoShoppingOrderDetails 订单详情
     * @return 结果
     */
    public int insertDanmoShoppingOrderDetails(DanmoShoppingOrderDetails danmoShoppingOrderDetails);

    /**
     * 支付成功
     * 
     * @param danmoShoppingOrdersReq 订单详情
     * @return 结果
     */
    public Result updateDanmoShoppingOrderDetails(DanmoShoppingOrdersReq danmoShoppingOrdersReq);

    /**
     * 批量删除订单详情
     * 
     * @param ids 需要删除的订单详情主键集合
     * @return 结果
     */
    public int deleteDanmoShoppingOrderDetailsByIds(Long[] ids);

    /**
     * 删除订单详情信息
     * 
     * @param id 订单详情主键
     * @return 结果
     */
    public int deleteDanmoShoppingOrderDetailsById(Long id);

    /**
     * 直接购买商品生成订单
     * @param danmoShoppingOrdersReq
     * @return
     */
    Result addShoppingOrder(DanmoShoppingOrdersReq danmoShoppingOrdersReq);

    /**
     * 购物车订单展示
     * @param shoppingCartDto
     * @return
     */
    Result selectDanmoShoppingCart(ShoppingCartDto shoppingCartDto);

    /**
     * 通过购物车生成订单
     * @param danmoShoppingCartOrdersDto
     * @return
     */
    Result addSHoppingOrderByShoppingCart(DanmoShoppingCartOrdersDto danmoShoppingCartOrdersDto);

    /**
     * 发货
     * @param danmoShoppingOrdersReq
     * @return
     */
    Result updateDanmoShoppingDelivery(DanmoShoppingOrdersReq danmoShoppingOrdersReq);

    /**
     * 收货
     * @param danmoShoppingOrdersReq
     * @return
     */
    Result updateDanmoShoppingReceiving(DanmoShoppingOrdersReq danmoShoppingOrdersReq);

    /**
     * 退货/售后
     * @param danmoShoppingOrdersReq
     * @return
     */
    Result updateDanmoShoppingAfterSales(DanmoShoppingOrdersReq danmoShoppingOrdersReq);

    /**
     * 新增物流单号
     * @param danmoShoppingOrdersReq
     * @return
     */
    Result updateDanmoShoppingLogisticsOrderNumber(DanmoShoppingOrdersReq danmoShoppingOrdersReq);
}
